import java.util.Scanner;



public class text {
    public static void hanno(int n ,char a,char b,char c) {
        if(n == 1) {
            System.out.println(a + " -> " + c);
        }else {
            hanno(n - 1,a,c,b);
            System.out.println(a + " -> " + c);
            hanno(n - 1,b,a,c);

        }
    }
    public static void main(String[] args) {
        //递归求解汉诺塔问题
        int n = 3;
        hanno(n,'A','B','C');
    }




    public static void print(int a) {
        if(a < 10) {
            System.out.println(a);
        }else{
            print(a / 10);
            System.out.println(a%10);
        }
    }
    public static void main1(String[] args) {
        //按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)    （递归）
        int a = 1234;
        print(a);
    }


    public static int na(int n ) {
        if(n == 2) {
            return 1;
        }else if(n == 1) {
            return 1;
        }else {
            return na(n - 1) + na(n - 2);
        }

    }
    public static void main6(String[] args) {
        //递归求斐波那契数列的第 N 项
        Scanner  scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int ret = na(n);
        System.out.println(ret);
    }




    public static int add2(int n) {
        if(n < 10) {
            return n;
        }else{
            return n % 10 + add2(n / 10);
        }
    }

    public static void main5(String[] args) {
        //写一个递归方法，输入一个非负整数，返回组成它的数字之和
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int ret = add2(n);
        System.out.println(ret);
    }



    public static int add(int n ,int b) {
        if(n == b) {
            return n;
        }else {
            return b + add(n , b + 1);
        }
    }
    public static void main4(String[] args) {
        //递归求 1 + 2 + 3 + ... + 10
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int ret = add(n,1);
        System.out.println(ret);
    }



    public static int factorial (int n) {
        if(n == 1) {
            return 1;
        }else {
            return n * factorial(n - 1);
        }
    }

    public static void main3(String[] args) {
        //递归求 N 的阶乘
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int ret = factorial(n);
        System.out.println(ret);
    }

//    public static int max(int a,int b) {
//        return a>b?a:b;
//    }
    public static double max(double a,double b,double c) {
        double ret = a>b?a:b;
        return ret>c?ret:c;
    }
    public static void main2(String[] args) {
        //求最大值方法的重载
        //在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，还可以求3个小数的最大值？
       // System.out.println(max(1,2));
        System.out.println(max(1.2,5.8,4.2));
    }
//    public static int add(int a ,int b) {
//        return a + b;
//    }
    public static double add(double a,double b, double c) {
        return a + b + b;
    }

    public static void main1(String[] args) {
        //求和重载
        // 在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
         System.out.println(add(1,2));
        System.out.println(add(1.2,2.5,5.5));
    }
}
